package com.ddxz.hetong.mapper;

import com.ddxz.hetong.dto.RongZiDto;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * description
 *
 * @author 朱宗刚
 * @version 1.0.0
 * @date 2022/7/7
 */

@Mapper
@Repository
public interface RongZiHeTongMapper {
    /**
     * 获取融资合同总额
     * @return 融资合同总额
     */
    RongZiDto getTotalRongZiMoney();

    /**
     * 获取所有的融资机构列表
     * @return 列表
     */
    Page<RongZiDto> getDeptList();

    /**
     * 获取年份的统计结果
     * @return 列表
     */
    Page<RongZiDto> getYearList();

    /**
     * 贷款结构下的年份借款金额
     * @param deptName 贷款机构
     * @return 列表
     */
    Page<RongZiDto> getYearByDept(@Param("dept") String deptName);

    /**
     * 获取详情列表
     * @param deptName 贷款机构
     * @param year 年份
     * @return 列表
     */
    Page<RongZiDto> getDetail(@Param("dept") String deptName, @Param("year") Integer year);

    /**
     * 获取借款年份下的贷款机构
     * @param year 年份
     * @return 列表
     */
    Page<RongZiDto> getDeptByStartYear(@Param("year") Integer year);

    /**
     * 获取还款年份信息
     * @return 列表
     */
    Page<RongZiDto> getEndYearList();

    /**
     * 单位下的还款年份信息
     * @param deptName 贷款机构
     * @return 列表
     */
    Page<RongZiDto> getEndYearByDept(@Param("dept") String deptName);

    /**
     * 融资详情
     * @param deptName 贷款结构
     * @param year 还款年份
     * @return 列表
     */
    Page<RongZiDto> getDetailList(@Param("dept") String deptName, @Param("year") Integer year);

    /**
     * 还款年份下的单位列表
     * @param year 还款年份
     * @return 列表
     */
    Page<RongZiDto> getDeptByEndYear(@Param("year") Integer year);

    /**
     * 贷款机构已发放金额占比
     * @return 列表
     */
    Page<RongZiDto> getDeptPercent();

    /**
     * 不同贷款机构不同贷款年份下的月度汇总列表
     * @param year 年份
     * @param deptName 贷款机构
     * @return 列表
     */
    Page<RongZiDto> getMonthByStartYearAndDept(@Param("year") Integer year, @Param("dept") String deptName);

    /**
     * 不同贷款结构不同还款年份下的月度汇总列表
     * @param year 年份
     * @param deptName 贷款机构
     * @return 列表
     */
    Page<RongZiDto> getMonthByEndYearAndDept(@Param("year") Integer year, @Param("dept") String deptName);

    /**
     * 不同贷款年份下的月度汇总列表
     * @param year 贷款年份
     * @return 列表
     */
    Page<RongZiDto> getMonthByStartYear(@Param("year") Integer year);

    /**
     * 不同还款年份下的月度汇总列表
     * @param year 还款年份
     * @return 列表
     */
    Page<RongZiDto> getMonthByEndYear(@Param("year") Integer year);
}
